#include "Led.h"

static uint8_t Init_Led(void)
{

    GPIO_InitTypeDef GPIO_InitStruct = {0};

    /*Configure GPIO pin Output Level */
    HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_RESET);

    /*Configure GPIO pin : PtPin */
    GPIO_InitStruct.Pin = LED_Pin;
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
    HAL_GPIO_Init(LED_GPIO_Port, &GPIO_InitStruct);

    return 0;
}

void led_task_handler()
{
    static uint8_t led_task_state = 0;

    if (led_task_state == 0)
    {
        if (Init_Led() == 0)
        {
            led_task_state = 1;
        }
    }
    else
    {
        if (g_key_state == KEY_PRESSING) // Key pressed
        {
            HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin); // Toggle LED state
            HAL_Delay(200); // Delay to toggle LED
        }
    }
}